package com.tencent.iov.cowin.befsale.clue.domain.clue.po;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.tencent.iov.cowin.befsale.clue.controller.clue.vo.request.AddClueIntentionVehicleRequest;
import com.tencent.iov.cowin.befsale.clue.crypt.annotation.CustomCryptField;
import com.tencent.iov.cowin.befsale.clue.crypt.enums.CustomCryptTypeEnum;
import lombok.Data;

import com.software.boot.common.entity.BaseEntity;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;

/**
 * @Describe: 线索源信息表_实体层
 * @author: whp
 * @created: 2021-12-21 16:16:13
 * @version: 1.0
 */
@Data
@ApiModel(description = "线索源信息表_实体模型")
public class ClueInitial extends BaseEntity {

    /**
     * 主键
     */
    @ApiModelProperty(value = "主键", example = "stringValue")
    private Long id;

    @ApiModelProperty(value = "CRM线索id")
    private String crmClueId;

    /**
     * request_id 请求id
     */
    @ApiModelProperty(value = "request_id 请求id", example = "stringValue")
    private String requestId;
    /**
     * 客户全局唯一id
     */
    @ApiModelProperty(value = "客户全局唯一id", example = "stringValue")
    private String oneId;
    /**
     * 微信唯一编号 添加好友可以获取unionid，添加好友时无oneid
     */
    @ApiModelProperty(value = "微信唯一编号 添加好友可以获取unionid，添加好友时无oneid", example = "stringValue")
    private String unionId;
    /**
     * open企微公开id
     */
    @ApiModelProperty(value = "open企微公开id", example = "stringValue")
    private String openId;
    /**
     * 姓名
     */
    @ApiModelProperty(value = "姓名", example = "stringValue")
    private String name;
    /**
     * 手机号
     */
    @ApiModelProperty(value = "手机号", example = "stringValue")
    @CustomCryptField(value = CustomCryptTypeEnum.PHONE_NUMBER)
    private String phone;

    @ApiModelProperty(value = "学历", example = "stringValue")
    private String qualification;

    @ApiModelProperty(value = "头像", example = "stringValue")
    private String avatar;
    /**
     * 备用手机号
     */
    @ApiModelProperty(value = "备用手机号", example = "stringValue")
    @CustomCryptField(value = CustomCryptTypeEnum.PHONE_NUMBER)
    private String phoneBak;
    /**
     * 来源 线上/线下
     */
    @ApiModelProperty(value = "来源 线上/线下", example = "1")
    private Integer sourceFirst;
    /**
     * 来源 经销商/二网/总部
     */
    @ApiModelProperty(value = "来源 经销商/二网/总部", example = "1")
    private Integer sourceSecond;
    /**
     * 来源 渠道code
     */
    @ApiModelProperty(value = "来源 渠道code ", example = "stringValue")
    private String sourceThird;
    /**
     * 活动id
     */
    @ApiModelProperty(value = "活动id", example = "stringValue")
    private String sourceActivityId;
    /**
     * 创建人id
     */
    @ApiModelProperty(value = "创建人id", example = "stringValue")
    private String sourceCreatedbyId;
    /**
     * 性别
     */
    @ApiModelProperty(value = "性别", example = "1")
    private Integer gender;
    /**
     * 客户类型 个人/公司
     */
    @ApiModelProperty(value = "客户类型 个人/公司", example = "1")
    private Integer typeCode;
    /**
     * 年龄
     */
    @ApiModelProperty(value = "年龄", example = "1")
    private Integer age;

    /**
     * 生日
     */
    @ApiModelProperty(value = "生日", example = "stringValue")
    private String birthday;
    /**
     * 省code
     */
    @ApiModelProperty(value = "省code", example = "stringValue")
    private String provinceCode;
    /**
     * 市code
     */
    @ApiModelProperty(value = "市code", example = "stringValue")
    private String cityCode;
    /**
     * 区code
     */
    @ApiModelProperty(value = "区code", example = "stringValue")
    private String districtCode;
    /**
     * 详细地址
     */
    @ApiModelProperty(value = "详细地址", example = "stringValue")
    private String address;
    /**
     * 微信昵称
     */
    @ApiModelProperty(value = "微信昵称", example = "stringValue")
    private String qwName;
    /**
     * 客户备注
     */
    @ApiModelProperty(value = "客户备注", example = "stringValue")
    private String cusRemark;
    /**
     * 意向等级_意向字典
     */
    @ApiModelProperty(value = "意向等级_意向字典", example = "stringValue")
    private String intentionGrade;
    /**
     * 购买方式_意向字典
     */
    @ApiModelProperty(value = "购买方式_意向字典", example = "stringValue")
    private String buyWay;
    /**
     * 拟购时间_意向字典
     */
    @ApiModelProperty(value = "拟购时间_意向字典", example = "stringValue")
    private String mayBuyTime;
    /**
     * 购车类型_意向字典
     */
    @ApiModelProperty(value = "购车类型_意向字典", example = "stringValue")
    private String buyVehicleType;
    /**
     * 购车用途_意向字典
     */
    @ApiModelProperty(value = "购车用途_意向字典", example = "stringValue")
    private String buyVehicleUse;
    /**
     * 车辆价格_意向字典
     */
    @ApiModelProperty(value = "车辆价格_意向字典", example = "stringValue")
    private String buyVehiclePrice;
    /**
     * 意向品牌id ，逗号隔开 list id
     */
    /*@ApiModelProperty(value = "意向品牌id ，逗号隔开 list id", example = "stringValue")
    private String brandIds;*/
    /*@ApiModelProperty(value = "意向品牌brandIds对应的第一个品牌名称", example = "stringValue")
    private String brandIdsFirstName;*/
    /**
     * 车系 ，逗号隔开 list id
     */
    /*@ApiModelProperty(value = "车系 ，逗号隔开 list id", example = "stringValue")
    private String seriesIds;*/
    /*@ApiModelProperty(value = "车系seriesIds对应的第一个车系名称", example = "stringValue")
    private String seriesIdsFirstName;*/
    /**
     * 意向车型id ，逗号隔开 list id
     */
    /*@ApiModelProperty(value = "意向车型id ，逗号隔开 list id", example = "stringValue")
    private String modelIds;*/
    /*@ApiModelProperty(value = "意向车型modelIds对应的第一个车型名称", example = "stringValue")
    private String modelIdsFirstName;*/
    /**
     * 意向车型id ，逗号隔开 list id
     */
   /* @ApiModelProperty(value = "意向车型id ，逗号隔开 list id", example = "stringValue")
    private String modelYearIds;*/
   /* @ApiModelProperty(value = "意向车型年modelYearIds对应的第一个名称", example = "stringValue")
    private String modelYearIdsFirstName;*/
    /**
     * 意向配置id ，逗号隔开 list id
     */
   /* @ApiModelProperty(value = "意向配置id ，逗号隔开 list id", example = "stringValue")
    private String configIds;
    @ApiModelProperty(value = "意向配置configIds对应的第一个名称", example = "stringValue")
    private String configIdsFirstName;*/
    /**
     * 大字段类型表bef_text_field id  车意向json 上面的品牌到配置集合
     */
   /* @ApiModelProperty(value = "大字段类型表bef_text_field id  车意向json 上面的品牌到配置集合", example = "stringValue")
    private Long textFieldId;*/
    /**
     * 跟进人id，org_成员id
     */
    @ApiModelProperty(value = "跟进人id，org_成员id", example = "stringValue")
    private Long followEmpId;

    @ApiModelProperty(value = "跟进人姓名", example = "stringValue")
    private String followEmpName;
    /**
     * 清洗状态，0清洗 1已处理
     */
    @ApiModelProperty(value = "清洗状态，0清洗 1已处理 ", example = "1")
    private Integer cleanType;
    /**
     * 企微通讯录用户编号	添加企微好友后，可获取客户用户的user_id
     */
    @ApiModelProperty(value = "企微通讯录用户编号	添加企微好友后，可获取客户用户的user_id", example = "stringValue")
    private String userId;
    /**
     * 租户id
     */
    @ApiModelProperty(value = "租户id", example = "stringValue")
    private String tenantId;
    /**
     * 经销商id
     */
    @ApiModelProperty(value = "经销商id", example = "stringValue")
    private String dealerId;
    /**
     * 企微id
     */
    @ApiModelProperty(value = "企微id", example = "stringValue")
    private String corpId;
    /**
     * 产品介绍code list id标签
     */
    @ApiModelProperty(value = "产品介绍code list id标签", example = "stringValue")
    private String prodCode;
    /**
     * 本次跟进备注
     */
    @ApiModelProperty(value = "本次跟进备注", example = "stringValue")
    private String followRemark;
    /**
     * 跟进内容标签id（到店接待，试乘试驾，下订，交车）
     */
    @ApiModelProperty(value = "跟进内容标签id（到店接待，试乘试驾，下订，交车）", example = "stringValue")
    private String followContent;
    /**
     * 到店接待_进店时间
     */
    @ApiModelProperty(value = "到店接待_进店时间", example = "2020-03-28T13:46:56.711Z")
    private Date checkinTime;
    /**
     * 到店接待_离店时间
     */
    @ApiModelProperty(value = "到店接待_离店时间", example = "2020-03-28T13:46:56.711Z")
    private Date checkoutTime;
    /**
     * 试乘试驾_意向车型id
     */
    @ApiModelProperty(value = "试乘试驾_意向车型id", example = "stringValue")
    private Long driveModelId;
    /**
     * 试乘试驾_意向配置id
     */
    @ApiModelProperty(value = "试乘试驾_意向配置id", example = "stringValue")
    private Long driveConfigId;


    /**
     * 试乘试驾_意向品牌id
     */
    @ApiModelProperty(value = "试乘试驾_意向品牌id", example = "stringValue")
    private Long driveBrandId;
    /**
     * 试乘试驾_意向车系id
     */
    @ApiModelProperty(value = "试乘试驾_意向车系id", example = "stringValue")
    private Long driveSeriesId;
    /**
     * 试乘试驾_意向年款Id
     */
    @ApiModelProperty(value = "试乘试驾_意向年款Id", example = "stringValue")
    private Long driveYearId;

    /**
     * 下订_车型id
     */
    @ApiModelProperty(value = "下订_车型id", example = "stringValue")
    private Long orderModelId;
    /**
     * 下订_配置id
     */
    @ApiModelProperty(value = "下订_配置id", example = "stringValue")
    private Long orderConfigId;
    /**
     * 下订_姓名
     */
    @ApiModelProperty(value = "下订_姓名", example = "stringValue")
    private String orderName;
    /**
     * 下订_手机号
     */
    @ApiModelProperty(value = "下订_手机号", example = "stringValue")
    @CustomCryptField(value = CustomCryptTypeEnum.PHONE_NUMBER)
    private String orderPhone;
    /**
     * 下订_金额
     */
    @ApiModelProperty(value = "下订_金额", example = "0.1")
    private BigDecimal orderMoney;
    /**
     * 下订_交车时间
     */
    @ApiModelProperty(value = "下订_交车时间", example = "2020-03-28T13:46:56.711Z")
    private Date orderDeliveryTime;
    /**
     * 下订_地址
     */
    @ApiModelProperty(value = "下订_地址", example = "stringValue")
    private String orderAddress;



    @ApiModelProperty(value = "下订_品牌id", example = "stringValue")
    private Long orderBrandId;
    /**
     * 下订_车系id
     */
    @ApiModelProperty(value = "下订_车系id", example = "stringValue")
    private Long orderSeriesId;
    /**
     * 下订_年款Id
     */
    @ApiModelProperty(value = "下订_年款Id", example = "stringValue")
    private Long orderYearId;

    /**
     * 交车_姓名
     */
    @ApiModelProperty(value = "交车_姓名", example = "stringValue")
    private String deliveryName;
    /**
     * 交车_手机号
     */
    @ApiModelProperty(value = "交车_手机号", example = "stringValue")
    @CustomCryptField(value = CustomCryptTypeEnum.PHONE_NUMBER)
    private String deliveryPhone;
    /**
     * 下次计划跟进内容标签id（0产品介绍 1到店接待，2试乘试驾，3下订，4交车）
     */
    @ApiModelProperty(value = "下次计划跟进内容标签id（0产品介绍 1到店接待，2试乘试驾，3下订，4交车）", example = "stringValue")
    private String planFollowContent;
    /**
     * 下次跟进时间
     */
    @ApiModelProperty(value = "下次跟进时间", example = "2020-03-28T13:46:56.711Z")
    private Date planFollowTime;
    /**
     * 下次跟进时间code
     */
    @ApiModelProperty(value = "下次跟进时间code", example = "stringValue")
    private String planFollowTimeCode;
    /**
     * 下次跟进预约id
     */
    @ApiModelProperty(value = "下次跟进预约id", example = "stringValue")
    private Long planFollowId;
    /**
     * 跟进备注
     */
    @ApiModelProperty(value = "跟进备注", example = "stringValue")
    private String planFollowRemark;
    /**
     * 意向车型id ，逗号隔开 list id
     */
    @ApiModelProperty(value = "意向车型id ，逗号隔开 list id", example = "stringValue")
    private String planModelId;
    /**
     * 意向配置id ，逗号隔开 list id
     */
    @ApiModelProperty(value = "意向配置id ，逗号隔开 list id", example = "stringValue")
    private String planConfigId;


    /**
     * 试乘试驾_意向品牌id
     */
    @ApiModelProperty(value = "试乘试驾_意向品牌id", example = "stringValue")
    private Long planDriveBrandId;
    /**
     * 试乘试驾_意向车系id
     */
    @ApiModelProperty(value = "试乘试驾_意向车系id", example = "stringValue")
    private Long planDriveSeriesId;
    /**
     * 试乘试驾_意向年款Id
     */
    @ApiModelProperty(value = "试乘试驾_意向年款Id", example = "stringValue")
    private Long planDriveYearId;


    /**
     * 第三方预约编号
     */
    @ApiModelProperty(value = "第三方预约编号", example = "stringValue")
    private Long arrangeNo;
    /**
     * 线索源状态（0新建、1已处理，2重复无效、3手机号码无效、4电话无效)
     */
    @ApiModelProperty(value = "线索源状态（0新建、1已处理，2重复无效、3手机号码无效、4电话无效 5:线索无效)", example = "1")
    private Integer status;
    /**
     * 删除标志（0：代表存在、-1：代表删除）
     */
    @ApiModelProperty(value = "删除标志（0：代表存在、-1：代表删除）", example = "1")
    private Integer deleted;

    /**
     * 创建人名称
     */
    @ApiModelProperty(value = "创建人名称", example = "stringValue")
    private String createdName;


    /**
     * 修改人名称
     */
    @ApiModelProperty(value = "修改人名称", example = "stringValue")
    private String updatedName;

    @ApiModelProperty(value = "学历字典值", example = "stringValue")
    private String education;

    @ApiModelProperty(value = "婚姻字段值", example = "stringValue")
    private String marriage;

    @ApiModelProperty(value = "家庭成员数字典值", example = "stringValue")
    private String familyNum;

    @ApiModelProperty(value = "子女数字典值", example = "stringValue")
    private String childrenNum;

    @ApiModelProperty(value = "职业字典值", example = "stringValue")
    private String vocation;

    @ApiModelProperty(value = "家庭年收入字典值", example = "stringValue")
    private String familyYearIncome;

    @ApiModelProperty(value = "家庭年支出字典值", example = "stringValue")
    private String familyYearOutcome;

    @ApiModelProperty(value = "联合字段，json字符串")
    private String info;

    @ApiModelProperty(value = "基本标签，意向标签code-name对应的json信息")
    private String codeNameInfo;
    /**
     * 添加微信手机号
     */
    @ApiModelProperty(value = "添加微信手机号", example = "stringValue")
    @CustomCryptField(value = CustomCryptTypeEnum.PHONE_NUMBER)
    private String phoneWx;

    /**
     * 外部联系人id
     */
    @ApiModelProperty(value = "外部联系人id", example = "stringValue")
    private String externalUserid;
    /**
     * 主数据customer_base表主键id
     */
    @ApiModelProperty(value = "主数据customer_base表主键id", example = "stringValue")
    private Long customerBaseId;
    /**
     * 预约类型
     */
    @ApiModelProperty(value = "预约类型", example = "stringValue")
    private String arrangeType;

    @ApiModelProperty(value = "意向信息-意向车型，车系等"/*, example = "stringValue"*/)
    private List<AddClueIntentionVehicleRequest> addVehicleList;

    @ApiModelProperty(value = "操作时间(试驾-试驾时间, 下订-下订时间,  交车-交车时间, 战败-战败时间)", example = "2020-03-28T13:46:56.711Z")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date operateTime;

   /* private List<ClueToMqVehResponse> intentionVehicleList;*/

    /**
     * 线索来源——业务类型
     * AccessAddTypeEnum
     */
    @ApiModelProperty(value = "业务类型:1：经纪人, 2：试驾预约 3：整车订单", example = "stringValue")
    private Integer accessAddType;
    @ApiModelProperty(value = "业务单号", example = "stringValue")
    private String accessAddNumber;
    @ApiModelProperty(value = "业务开展时间:试驾预约传试驾预约时间订单传下定时间", example = "stringValue")
    private Date accessAddTime;

    /**
     * 清洗下发时
     * 分配经销商名称
     */
    @ApiModelProperty(value = "分配经销商名称")
    private String distributeDealerCode;
    /**
     * 清洗下发时
     * 分配顾问
     */
    @ApiModelProperty(value = "分配顾问")
    private String distributeEmp;


    @ApiModelProperty(value = "分页起止数据",hidden = true)
    private Integer pageIndex;

    @ApiModelProperty(value = "分页 每页数量",hidden = true)
    private Integer pageSize;

    @ApiModelProperty("二网ID")
    private Long dealerSecondaryId;

    @ApiModelProperty("二网名称")
    private String dealerSecondaryName;

    @ApiModelProperty("二网级别")
    private String dealerSecondaryLevel;
}


